package com.ysh.one_to_many;

import com.ysh.domain.Classes;
import org.apache.ibatis.annotations.Many;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;

import java.util.List;
public interface ClassesMapper {
    // 查询全部
    @Select("select * from classes")
    @Results({
            // 主键id及班级名称
            @Result(column = "id", property = "id"),
            @Result(column = "name", property = "name"),
            @Result(
                    property = "students",    // 被包含对象名字
                    javaType = List.class,    // 被包含对象实际数据类型
                    column = "id",            // 根据查询出的classes表的id字段来查询student表

                    /*
                        many @Many  一对多查询的固定写法
                        select属性：指定要调用哪个接口中的哪个查询方法
                            值：包名.接口名.接口中的方法名
                     */
                    many = @Many(select = "com.ysh.one_to_many.StudentMapper.selectById")
            )
    })
    public abstract List<Classes> selectAll();
}
